package com.graduation.design;

/**
 * <p>
 * mysql 代码生成器演示例子
 * </p>
 *
 * @author jobob
 * @since 2018-09-12
 */
public class MysqlGenerator {

    ///**
    // * <p>
    // * 读取控制台内容
    // * </p>
    // */
    //public static String scanner(String tip) {
    //    Scanner scanner = new Scanner(System.in);
    //    StringBuilder help = new StringBuilder();
    //    help.append("请输入" + tip + "：");
    //    System.out.println(help.toString());
    //    if (scanner.hasNext()) {
    //        String ipt = scanner.next();
    //        if (StringUtils.isNotEmpty(ipt)) {
    //            return ipt;
    //        }
    //    }
    //    throw new MybatisPlusException("请输入正确的" + tip + "！");
    //}
    //
    ///**
    // * RUN THIS
    // */
    //public static void main(String[] args) {
    //    // 代码生成器
    //    AutoGenerator mpg = new AutoGenerator();
    //
    //    // 全局配置
    //    GlobalConfig gc = new GlobalConfig();
    //    String projectPath = System.getProperty("user.dir");
    //    gc.setOutputDir(projectPath + "/web-program/src/main/java");
    //    gc.setAuthor("xuweizhi");
    //    gc.setOpen(false);
    //    //去除service报名前缀i
    //    gc.setServiceName("%sService");
    //    mpg.setGlobalConfig(gc);
    //
    //    // 数据源配置
    //    DataSourceConfig dsc = new DataSourceConfig();
    //    dsc.setUrl("jdbc:mysql://192.168.112.21:3306/wtf?useUnicode=true&useSSL=false&characterEncoding=utf8");
    //    // dsc.setSchemaName("public");
    //    dsc.setDriverName("com.mysql.jdbc.Driver");
    //    dsc.setUsername("root");
    //    dsc.setPassword("158262751");
    //    mpg.setDataSource(dsc);
    //
    //    // 包配置
    //    PackageConfig pc = new PackageConfig();
    //    pc.setModuleName(scanner("模块名"));
    //    pc.setParent("com.graduation");
    //    pc.setEntity("model");
    //    mpg.setPackageInfo(pc);
    //
    //    // 自定义配置
    //    InjectionConfig cfg = new InjectionConfig() {
    //        @Override
    //        public void initMap() {
    //
    //        }
    //    };
    //    List<FileOutConfig> focList = new ArrayList<>();
    //    focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
    //        @Override
    //        public String outputFile(TableInfo tableInfo) {
    //            // 自定义输入文件名称
    //            return projectPath + "/web-program/src/main/java/com/graduation/" + pc.getModuleName()
    //                    + "/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
    //        }
    //    });
    //
    //    cfg.setFileOutConfigList(focList);
    //    mpg.setCfg(cfg);
    //    mpg.setTemplate(new TemplateConfig().setXml(null));
    //
    //    // 策略配置
    //    StrategyConfig strategy = new StrategyConfig();
    //    strategy.setNaming(NamingStrategy.underline_to_camel);
    //    strategy.setColumnNaming(NamingStrategy.underline_to_camel);
    //    //strategy.setSuperEntityClass("com.baomidou.mybatisplus.samples.generator.common.BaseEntity");
    //    strategy.setEntityLombokModel(true);
    //    strategy.setSuperServiceClass("com.graduation.design.service.BaseService");
    //    strategy.setSuperServiceImplClass("com.graduation.design.service.impl.BaseServiceImpl");
    //    strategy.setRestControllerStyle(true);
    //    //strategy.setSuperControllerClass("com.baomidou.mybatisplus.samples.generator.common.BaseController");
    //    strategy.setInclude(scanner("表名"));
    //    //strategy.setSuperEntityColumns("id");
    //    strategy.setControllerMappingHyphenStyle(true);
    //    strategy.setTablePrefix(pc.getModuleName() + "_");
    //    mpg.setStrategy(strategy);
    //    // 选择 freemarker 引擎需要指定如下加，注意 pom 依赖必须有！
    //    mpg.setTemplateEngine(new FreemarkerTemplateEngine());
    //    mpg.execute();
    //}

}
